package ch.privat.kunden.model;

import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class KundeListe {

	private int iId;

	private SimpleStringProperty sFirma = new SimpleStringProperty("");

	private SimpleStringProperty sStrasse = new SimpleStringProperty("");

	private SimpleStringProperty sHausnummer = new SimpleStringProperty("");

	private SimpleStringProperty sPlz = new SimpleStringProperty("");

	private SimpleStringProperty sOrt = new SimpleStringProperty("");

	private SimpleStringProperty sTel = new SimpleStringProperty("");

	private SimpleStringProperty sFax = new SimpleStringProperty("");

	private SimpleStringProperty sHomepage = new SimpleStringProperty("");

	private SimpleBooleanProperty bArchiv = new SimpleBooleanProperty(false);

	/**
	 * Konsturktor
	 * 
	 * @param id
	 * @param firma
	 * @param strasse
	 * @param hausnummer
	 * @param plz
	 * @param ort
	 * @param tel
	 * @param fax
	 * @param Homepage
	 * @param archiv
	 */
	public KundeListe(String firma, String strasse, String hausnummer, String plz, String ort, String tel, String fax, String homepage, Boolean archiv) {
		setsFirma(firma);
		setsStrasse(strasse);
		setsHausnummer(hausnummer);
		setsPlz(plz);
		setsOrt(ort);
		setsTel(tel);
		setsFax(fax);
		setsHomepage(homepage);
		setbArchiv(archiv);
	}

	/**
	 * Leerer Konstruktor
	 */
	public KundeListe() {
	}

	/**
	 * 
	 * @return
	 */
	public int getiId() {
		return iId;
	}

	/**
	 * 
	 * @param id
	 */
	public void setiId(int id) {
		this.iId = id;
	}

	/**
	 * 
	 * @return
	 */
	public String getsFirma() {
		return sFirma.get();
	}

	/**
	 * 
	 * @param sFirma
	 */
	public void setsFirma(String sFirma) {
		this.sFirma.set(sFirma);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sFirmaProperty() {
		return sFirma;
	}

	/**
	 * 
	 * @return
	 */
	public String getsStrasse() {
		return sStrasse.get();
	}

	/**
	 * 
	 * @param sStrasse
	 */
	public void setsStrasse(String sStrasse) {
		this.sStrasse.set(sStrasse);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sStrasseProperty() {
		return sStrasse;
	}

	/**
	 * 
	 * @return
	 */
	public String getsHausnummer() {
		return sHausnummer.get();
	}

	/**
	 * 
	 * @param sHausnummer
	 */
	public void setsHausnummer(String sHausnummer) {
		this.sHausnummer.set(sHausnummer);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sHausnummerProperty() {
		return sHausnummer;
	}

	/**
	 * 
	 * @return
	 */
	public String getsPlz() {
		return sPlz.get();
	}

	/**
	 * 
	 * @param sPlz
	 */
	public void setsPlz(String sPlz) {
		this.sPlz.set(sPlz);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sPlzProperty() {
		return sPlz;
	}

	/**
	 * 
	 * @return
	 */
	public String getsOrt() {
		return sOrt.get();
	}

	/**
	 * 
	 * @param sOrt
	 */
	public void setsOrt(String sOrt) {
		this.sOrt.set(sOrt);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sOrtProperty() {
		return sOrt;
	}

	/**
	 * 
	 * @return
	 */
	public String getsTel() {
		return sTel.get();
	}

	/**
	 * 
	 * @param sTel
	 */
	public void setsTel(String sTel) {
		this.sTel.set(sTel);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sTelProperty() {
		return sTel;
	}

	/**
	 * 
	 * @return
	 */
	public String getsFax() {
		return sFax.get();
	}

	/**
	 * 
	 * @param sFax
	 */
	public void setsFax(String sFax) {
		this.sFax.set(sFax);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sFaxProperty() {
		return sFax;
	}

	/**
	 * 
	 * @return
	 */
	public String getsHomepage() {
		return sHomepage.get();
	}

	/**
	 * 
	 * @param sHomepage
	 */
	public void setsHomepage(String sHomepage) {
		this.sHomepage.set(sHomepage);
	}

	/**
	 * 
	 * @return
	 */
	public StringProperty sHomepageProperty() {
		return sHomepage;
	}

	/**
	 * 
	 * @return
	 */
	public Boolean getbArchiv() {
		return bArchiv.get();
	}

	/**
	 * 
	 * @param bArchiv
	 */
	public void setbArchiv(Boolean bArchiv) {
		this.bArchiv.set(bArchiv);
		
		System.out.println("archiv");
	}

	/**
	 * 
	 * @return
	 */
	public BooleanProperty bArchivProperty() {
		return bArchiv;
	}

	/**
	 * 
	 * @param kundenData
	 * @return Zwei Objekte gleich
	 */
	public boolean equals(Object kundenData) {

		if (this == kundenData) {
			return true;
		}

		if (kundenData == null) {
			return false;
		}

		if (getClass() != kundenData.getClass()) {
			return false;
		}

		if (!((KundeListe) kundenData).getsFirma().equals(getsFirma())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsStrasse().equals(getsStrasse())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsHausnummer().equals(getsHausnummer())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsPlz().equals(getsPlz())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsOrt().equals(getsOrt())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsTel().equals(getsTel())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsFax().equals(getsFax())) {
			return false;
		}

		if (!((KundeListe) kundenData).getsHomepage().equals(getsHomepage())) {
			return false;
		}

		return true;
	}

}
